6ca397b8d56b282b60ae934c09bf782a6ccfa5ff,src/main/java/org/sigmah/client/ui/presenter/project/dashboard/PhasesPresenter.java,PhasesPresenter,loadPhaseOnTab,#PhaseDTO#,568
Before Change
// Creates the fieldset and positions it.
final FieldSet formPanel = (FieldSet) groupDTO.getWidget();
layoutGrid.setWidget(groupDTO.getRow(), groupDTO.getColumn(), formPanel);
// For each constraint in the current layout group.
for (final LayoutConstraintDTO constraintDTO : groupDTO.getConstraints()) {
// Gets the element managed by this constraint.
final FlexibleElementDTO elementDTO = constraintDTO.getFlexibleElementDTO();
// --
// -- DISABLED ELEMENTS
// --
if(elementDTO.isDisabled() &&
(phaseDTO.getEndDate() == null || phaseDTO.getEndDate().after(elementDTO.getDisabledDate()))) {
// Hiding the field if the current phase is opened or
// if it has been closed AFTER the field was disabled.
unmask();
continue;
}
// --
// -- ELEMENT VALUE
// --
// Retrieving the current amendment id.
final Integer amendmentId;
if (project.getCurrentAmendment() != null) {
amendmentId = project.getCurrentAmendment().getId();
} else {
amendmentId = null;
}
// Remote call to ask for this element value.
queue.add(new GetValue(getCurrentProject().getId(), elementDTO.getId(), elementDTO.getEntityName(), amendmentId),
new CommandResultHandler<ValueResult>() {
@Override
public void onCommandFailure(final Throwable throwable) {
if (Log.isErrorEnabled()) {
Log.error("Error, element value not loaded.", throwable);
}
unmask();
}
@Override
public void onCommandSuccess(final ValueResult valueResult) {
if (Log.isDebugEnabled()) {
Log.debug("Element value(s) object : " + valueResult);
}
// --
// -- ELEMENT COMPONENT
// --
// Configures the flexible element for the current application state before generating its component.
elementDTO.setService(dispatch);
elementDTO.setEventBus(eventBus);
elementDTO.setAuthenticationProvider(injector.getAuthenticationProvider());
elementDTO.setCache(injector.getClientCache());
elementDTO.setCurrentContainerDTO(getCurrentProject());
elementDTO.setTransfertManager(injector.getTransfertManager());
elementDTO.assignValue(valueResult);
final ProjectPresenter projectPresenter = injector.getProjectPresenter();
// Generates element component (with the value).
elementDTO.init();
final Component elementComponent = elementDTO.getElementComponent(valueResult, phaseIsEnded);
if(elementDTO.getAmendable() && projectPresenter.projectIsLocked() && projectPresenter.canUnlockProject() && !ProfileUtils.isGranted(auth(), GlobalPermissionEnum.MODIFY_LOCKED_CONTENT)) {
projectPresenter.addUnlockProjectPopup(elementDTO, elementComponent, view);
}
// Component width.
final FormData formData;
if (elementDTO.getPreferredWidth() == 0) {
formData = new FormData("100%");
} else {
formData = new FormData(elementDTO.getPreferredWidth(), -1);
}
if (elementComponent != null) {
formPanel.add(elementComponent, formData);
}
formPanel.layout();
// --
// -- ELEMENT HANDLERS
// --
// Adds a value change handler to this element.
elementDTO.addValueHandler(new ValueHandlerImpl());
// Adds a value change handler if this element is a dependency of a ComputationElementDTO.
computationTriggerManager.listenToValueChangesOfElement(elementDTO, elementComponent, valueChanges);
// If this element id a required one.
if (elementDTO.getValidates()) {
// Adds a specific handler.
elementDTO.addRequiredValueHandler(new RequiredValueHandlerImpl(elementDTO));
// Set the groupDTO into the element
elementDTO.setGroup(groupDTO);
elementDTO.setConstraint(constraintDTO);
// Adds the element to the tmp list for sorting
requiredElemetsList.add(elementDTO);
// Clear the store
view.getGridRequiredElements().getStore().removeAll();
// Sorting and add the list to the view
view.getGridRequiredElements().getStore().add(sortRequiredElements(requiredElemetsList));
// Refresh header
refreshRequiredElementContentPanelHeader();
// Map the required element for the current
// displayed phase.
currentPhaseRequiredElements.putSaved(elementDTO.getId(), elementDTO.isFilledIn());
// If the current displayed phase is the active one,
// map the required element for the active phase.
if (isCurrentPhase(getCurrentProject().getCurrentPhase())) {
activePhaseRequiredElements.putSaved(elementDTO.getId(), elementDTO.isFilledIn());
}
}
unmask();
}
});
}
}
After Change
for (final LayoutGroupDTO groupDTO : phaseDTO.getPhaseModel().getLayout().getGroups()) {
// simple group
if(!groupDTO.getHasIterations()) {
FieldSet fieldSet = createGroupLayoutFieldSet(getCurrentProject(), groupDTO, queue, null, null, null);
layoutGrid.setWidget(groupDTO.getRow(), groupDTO.getColumn(), fieldSet);
continue;
}
final FieldSet fieldSet = (FieldSet) groupDTO.getWidget();
layoutGrid.setWidget(groupDTO.getRow(), groupDTO.getColumn(), fieldSet);
// iterative group
final IterableGroupPanel tabPanel = Forms.iterableGroupPanel(dispatch, groupDTO, getCurrentProject(), ProfileUtils.isGranted(auth(), GlobalPermissionEnum.CREATE_ITERATIONS) && getCurrentProject().getCurrentAmendment() == null);
tabPanel.setDelegate(this);
fieldSet.add(tabPanel);
tabPanel.setAutoHeight(true);
tabPanel.setAutoWidth(true);
tabPanel.setTabScroll(true);
tabPanel.addStyleName("white-tab-body");
tabPanel.setBorders(true);
tabPanel.setBodyBorder(false);
Integer amendmentId;
if (getCurrentProject().getCurrentAmendment() != null) {
amendmentId = getCurrentProject().getCurrentAmendment().getId();
} else {
amendmentId = -1;
}
GetLayoutGroupIterations getIterations = new GetLayoutGroupIterations(groupDTO.getId(), getCurrentProject().getId(), amendmentId);
queue.add(getIterations, new CommandResultHandler<ListResult<LayoutGroupIterationDTO>>() {
@Override
public void onCommandFailure(final Throwable throwable) {
if (Log.isErrorEnabled()) {
Log.error("Error, layout group iterations not loaded.", throwable);
}
throw new RuntimeException(throwable);
}
@Override
protected void onCommandSuccess(ListResult<LayoutGroupIterationDTO> result) {
DispatchQueue iterationsQueue = new DispatchQueue(dispatch, true);
for(final LayoutGroupIterationDTO iteration : result.getList()) {
final IterableGroupItem tab = new IterableGroupItem(tabPanel, iteration.getId(), iteration.getName());
tabPanel.addIterationTab(tab);
Layout tabLayout = Layouts.fitLayout();
tab.setLayout(tabLayout);
FieldSet tabSet = createGroupLayoutFieldSet(getCurrentProject(), groupDTO, iterationsQueue, iteration == null ? null : iteration.getId(), tabPanel, tab);
tab.add(tabSet);
}
iterationsQueue.start();
if(tabPanel.getItemCount() > 0) {
tabPanel.setSelection(tabPanel.getItem(0));
}
}
}, new LoadingMask(view.getTabPanelPhases()));
fieldSet.layout();
}